/**
 * Created by yujianfu on 2019/9/11.
 */
import React from 'react'

import {Table, Form, DatePicker, Button, Select, Radio} from 'antd'
const {RangePicker} = DatePicker
const FormItem = Form.Item
const {Option} = Select;
import {fetchPost} from '../../utils/request'
import moment from 'moment'
import ReportCommon from './ReportCommon'

class AgentDaysStats extends React.Component {

    constructor(props) {
        super(props)
        this.state = {
            params: {},
            startDate: null,
            endDate: null,
            loanType: 1,
            agentList: []
        }
    }

    componentDidMount() {

        this.getAgentList();
    }

    getAgentList() {
        var queryKey = "agentList";
        fetchPost(`/bizStats/general/query`, {queryKey}).then(json => {

            if (json && json.data != null && JSON.stringify(json.data) != '{}' && json.code === 0) {
                let keyList = json.data[`${queryKey}KeyList`]
                let data = json.data[queryKey]

                this.setState({
                    agentList: data
                })
            }
        });
    }

    handleSubmit = (e) => {
        e.preventDefault()
        this.props.form.validateFields((err, fieldsValue) => {
            const rangeValue = fieldsValue['range-picker']
            const adminId = fieldsValue['adminId']
            let startDate = moment(rangeValue[0], 'YYYY-MM-DD')
            let endDate = moment(rangeValue[1], 'YYYY-MM-DD')

            this.setState({
                params: {startDate, endDate, adminId}
            })
        })
    }

    render() {
        const dateFormat = 'YYYY-MM-DD'
        const rangeConfig = {
            rules: [{type: 'array', required: true, message: 'Please select Time!'}],
            initialValue: [this.state.startDate != null ? moment(this.state.startDate, dateFormat) : moment().subtract(7, 'days'),
                this.state.endDate != null ? moment(this.state.endDate, dateFormat) : moment()]
        }

        const formItemLayout = {
            labelCol: {
                xs: {span: 24},
                sm: {span: 8},
            },
            wrapperCol: {
                xs: {span: 24},
                sm: {span: 16},
            },
        }
        const {getFieldDecorator} = this.props.form;

        return (
            <div>
                <Form layout="inline" onSubmit={this.handleSubmit}>
                    <FormItem
                        {...formItemLayout}
                        label="AllocationDate"

                    >
                        {getFieldDecorator('range-picker', rangeConfig)(
                            <RangePicker/>
                        )}
                    </FormItem>
                    <FormItem label="AgentName" hasFeedback>
                        {getFieldDecorator('adminId', {
                            rules: [{required: true, message: 'select Bucket!'}]
                        })(
                        <Select
                            showSearch
                            style={{ width: 200 }}
                            placeholder="Select a person"
                            optionFilterProp="children"
                            filterOption={(input, option) =>
                            option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0
                            }
                        >
                            {this.state.agentList.map((v, k) => {
                                return <Option key={k} value={v.id}>{v.name}</Option>
                            })}
                        </Select>
                        )}
                    </FormItem>

                    <FormItem>
                        <Button type="primary" htmlType="submit">Search</Button>
                    </FormItem>

                </Form>
                <br/>
                <br/>
                <ReportCommon params={this.state.params} queryKey="agentDaysStats"
                              name="Allocate Date Based"/>

            </div>
        )
    }
}
const a = Form.create()(AgentDaysStats)
export default a

